frequencies_of_class_bluetooth = [2402 + channel for channel in range(0, 79)]

# 2.4GHz Channel
wifi_2_point_4_channel_list = list(range(1, 14))
wifi_2_point_4_channel_list_of_40 = list(range(3, 12))

# 2.4GHz Frequency
frequencies_of_2_point_4 = [2412 + 5 * (channel - 1) for channel in list(range(1, 13))] + [2484]
frequencies_of_2_point_4_40 = [2412 + 5 * (channel - 1) for channel in wifi_2_point_4_channel_list_of_40]

# 5G Channel
wifi_5g_20mhz_channel_list = [
    36, 40, 44, 48,
    52, 56, 60, 64,
    100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144,
    149, 153, 157, 161,
    165
]
wifi_5g_40mhz_channel_list = [
    38, 46, 54, 62, 102, 110, 118, 126, 134, 142, 151, 159
]
wifi_5g_80mhz_channel_list = [
    42, 58, 106, 122, 138, 155
]
wifi_5g_160mhz_channel_list = [
    50, 114
]

wifi_5g_channels = wifi_5g_20mhz_channel_list + \
                   wifi_5g_40mhz_channel_list + \
                   wifi_5g_80mhz_channel_list + \
                   wifi_5g_160mhz_channel_list

# 5G Frequency
wifi_5g_frequencies = [(channel * 5 + 5000) for channel in wifi_5g_channels]
wifi_5g_frequencies_20 = [(channel * 5 + 5000) for channel in wifi_5g_20mhz_channel_list]
wifi_5g_frequencies_40 = [(channel * 5 + 5000) for channel in wifi_5g_40mhz_channel_list]
wifi_5g_frequencies_80 = [(channel * 5 + 5000) for channel in wifi_5g_80mhz_channel_list]
wifi_5g_frequencies_160 = [(channel * 5 + 5000) for channel in wifi_5g_160mhz_channel_list]

# 303 687 U-NII-5 5945-6425
wifi_6g_20mhz_channel_list = [
    1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69,
    73, 77, 81, 85, 89, 93,
    97, 101, 105, 109, 113,
    117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185,
    189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233
]

wifi_6g_20mhz_ce_channel_list = [1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69,
    73, 77, 81, 85, 89, 93]

wifi_6g_40mhz_channel_list = [
    3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91,
    99, 107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187, 195, 203, 211, 219, 227
]

wifi_6g_80mhz_channel_list = [
    7, 23, 39, 55, 71, 87,
    103, 119, 135, 151, 167, 183, 199, 215
]

wifi_6g_160mhz_channel_list = [
    15, 47, 79,
    111, 143, 175, 207
]

wifi_6g_320mhz_channel_list = [
    31, 95, 159,
    63, 127, 191
]

wifi_6g_channels = wifi_6g_20mhz_channel_list + \
                   wifi_6g_40mhz_channel_list + \
                   wifi_6g_80mhz_channel_list + \
                   wifi_6g_160mhz_channel_list

wifi_6g_frequencies = [(channel * 5 + 5950) for channel in wifi_6g_channels]
wifi_6g_frequencies_20 = [(channel * 5 + 5950) for channel in wifi_6g_20mhz_channel_list]
wifi_6g_frequencies_40 = [(channel * 5 + 5950) for channel in wifi_6g_40mhz_channel_list]
wifi_6g_frequencies_80 = [(channel * 5 + 5950) for channel in wifi_6g_80mhz_channel_list]
wifi_6g_frequencies_160 = [(channel * 5 + 5950) for channel in wifi_6g_160mhz_channel_list]
wifi_6g_frequencies_320 = [(channel * 5 + 5950) for channel in wifi_6g_320mhz_channel_list]

all_frequencies = frequencies_of_2_point_4 + wifi_5g_frequencies + wifi_6g_frequencies
all_frequencies = list(set(all_frequencies))
all_frequencies = sorted(all_frequencies)